Зачисление из LDAP
Расположение: ссылка «Редактировать настройки LDAP» в Администрирование > Плагины > Зачисления на курсы > Управление плагинами зачисления
Как настроить зачисление из LDAP
Здесь описывается, как настроить зачисление по протоколу Lightweight Directory Access Protocol (LDAP) в Moodle (первый автор — Ларс Йенсен). Зачисление из LDAP лучше всего работает в Moodle при использовании вместе с аутентификацией LDAP, и мы будем исходить из того, что вы уже настроили Moodle для аутентификации LDAP.
Предположения
- Вы используете недавнюю версию Moodle.
- Вы используете аутентификацию LDAP в качестве основного метода аутентификации.
- У каждого пользователя есть атрибут uid в записи LDAP пользователя, который соответствует «Идентификатору (ID)» в профиле пользователя Moodle (это можно легко организовать с помощью сопоставления на странице настройки аутентификации LDAP в Moodle — для Active Directory используйте 'distinguishedName', без кавычек).
Настройка курса
Наша настройка включает следующие определения курса и пользователя:
- Два курса: Math101 и Eng201.
- Два преподавателя: TeacherA и TeacherB.
- Три студента: StudentD, StudentE и StudentF.
- StudentD и StudentE зачислены в качестве студентов на курс Math101, а TeacherA зачислен в качестве преподавателя курса Math101. StudentE и StudentF зачислены в качестве студентов на курс Eng201, а TeacherA и TeacherB зачислены в качестве преподавателей курса Eng201.
Настройка контейнера LDAP
- Определите два контейнера LDAP: ou=StudentEnrollment и ou=TeacherEnrollment.
- Для каждого курса определите запись группы LDAP (например, запись posixGroup) в контейнерах StudentEnrollment и TeacherEnrollment. Таким образом, мы определяем группу Math101 posixGroup в StudentEnrollment и группу Math101 posixGroup в TeacherEnrollment. Аналогичным образом мы определяем две группы Eng201. Будьте внимательны: название posixGroup должно соответствовать идентификатору курса в Moodle. Не используйте краткое название курса, это не сработает. (Небольшое изменение названия группы в окне имени группы Windows до 2000 года позволит вам иметь две группы безопасности с одинаковым именем в MS-AD).
- Зачислите студентов и преподавателей в качестве участников в только что определённые группы LDAP. Это делается путём ввода атрибута uid пользователя (идентификатора) в атрибут memberUid соответствующей группы:
- TeacherA является участником группы Math101 в TeacherEnrollment.
- StudentD и StudentE являются участниками группы Math101 в StudentEnrollment.
- TeacherA и TeacherB являются участниками группы Eng201 в TeacherEnrollment.
- StudentE и StudentF являются участниками группы Eng201 в StudentEnrollment.
Настройка зачисления из LDAP в Moodle
Настройки зачисления из LDAP в Moodle, соответствующие вышеуказанной настройке, выглядят следующим образом:
| Переменная зачисления из LDAP: | Значение: |
|---|---|
| enrol_ldap_student_contexts: | ou=StudentEnrollment,dc=ldapserver,dc=tmcc,dc=edu | |
| enrol_ldap_student_memberattribute: | memberUid (используйте 'member' — без кавычек — для Active Directory) |
| enrol_ldap_teacher_contexts: | ou=TeacherEnrollment,dc=ldapserver,dc=tmcc,dc=edu | |
| enrol_ldap_teacher_memberattribute: | memberUid (используйте 'member' — без кавычек — для Active Directory) |
| enrol_ldap_objectclass: | posixGroup (используйте 'group' — без кавычек — для Active Directory) |
| enrol_ldap_course_idnumber: | cn |
| enrol_ldap_course_shortname: | cn |
| enrol_ldap_course_fullname: | cn |
| enrol_ldap_autocreate: | Да |
Кроме того, поскольку вы используете аутентификацию LDAP, вам также следует сопоставить «Идентификатор (ID)» пользователей в Moodle с «uid» в записи LDAP пользователя. Это делается на странице аутентификации LDAP в Moodle (не на странице зачисления из LDAP).
Автоматическое создание курса
Курсы могут быть созданы автоматически, если есть зачисление из LDAP на курс, которого ещё нет в Moodle. Чтобы включить это, установите enrol_ldap_autocreate в Да.
Поле enrol_ldap_category задаёт категорию для автоматически созданных курсов.
Поле enrol_ldap_template может содержать Краткое название курса, который используется в качестве шаблона при автоматическом создании курса.
Обратите внимание, что из шаблона курса копируются только основные настройки, такие как дата начала, формат и т. д. Контент или настройки блоков не копируются.
Примечания
- Вам не нужно создавать курсы вручную в Moodle. Если их ещё нет, они будут созданы при первом входе зачисленного пользователя.
- Мы используем одну и ту же строку cn и uid в записи LDAP пользователя. Это не обязательно, я думаю. Однако, если вы используете другие значения, вам нужно будет определить ldap_user_attribute как uid в настройках аутентификации LDAP.
- Значение идентификатора группы (gidNumber), определённое для групп на шаге 2 настройки контейнера LDAP выше, не имеет решающего значения. Оно не используется в этой настройке.
- Приложенный файл .ldif предполагает, что пользователи находятся в контейнере ou=People в LDAP. Вам нужно будет настроить свою аутентификацию LDAP, чтобы отразить это (переменная ldap_contexts).
- Пароли пользователей для этой настройки определены в приложенном файле .ldif.
- Если вы используете приложенный файл .ldif, вам нужно будет отредактировать информацию о сервере LDAP (строки «dn=»).
Другая струк тура LDAP
Я предлагаю создать новый объект LDAP, скажем moodleCourse, который содержит всю информацию и участников курса, включая преподавателей, студентов и т. д. Например (OpenLDAP):
attributetype ( oidAttrBase:44 NAME ( 'teacherUid' ) SUP memberUid
DESC 'which person is a teacher of this course'
)
objectclass ( oidObjRoot:14 NAME 'moodleCourse' SUP top STRUCTURAL
DESC 'course available in Moodle'
MUST ( cn )
MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid )
)
Примечание: Openldap 2.x потребует что-то вроде:
attributetype ( 1.2.1.1.1.1.2.1 NAME 'teacherUid'
SUP memberUid
DESC 'which person is a teacher of this course'
EQUALITY caseExactIA5Match
SUBSTR caseExactIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
objectclass ( 1.2.1.1.1.1.1.1
NAME 'moodleCourse'
SUP top STRUCTURAL
DESC 'course available in Moodle'
MUST ( cn )
MAY ( owner $ gn $ sn $ seeAlso $ description $ memberUid $ teacherUid )
)
Настройка выглядит так, в жирном начертании вы видите необходимые изменения, в курсивном — полезные изменения.
| Переменная зачисления из LDAP: | Значение: |
|---|---|
| enrol_ldap_student_contexts: | ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu |
| enrol_ldap_student_memberattribute: | memberUid |
| enrol_ldap_teacher_contexts: | ou=moodle,ou=groups,dc=ldapserver,dc=tmcc,dc=edu |
| enrol_ldap_teacher_memberattribute: | teacherUid |
| enrol_ldap_objectclass: | moodleGroup |
| enrol_ldap_course_idnumber: | cn |
| enrol_ldap_course_shortname: | givenname |
| enrol_ldap_course_fullname: | sn |
| enrol_ldap_course_summary: | description |
| enrol_ldap_autocreate: | Да |
Примечание: enrol_ldap_course_idnumber (cn в моей настройке) используется для идентификации курса скриптом зачисления из LDAP, а база данных использует здесь INTEGER числовое значение, по крайней мере в Moodle v1.8. Когда вы вызываете `cd enrol/ldap/ && php